package com.yzkj.cpjxc.business.framework.utils;

import org.apache.commons.lang3.StringUtils;

/**
 * 物理表和JavaBean工具类
 */
public class TableBeanUtils {

	/**
	 * 数据库表的字段转成JavaBean的属性<br/>
	 * 	字段的命名：<br/>
	 * 	1、USER_NAME 以下划线方式<br/>
	 * 	2、userName  以大写字母方式
	 * @param columnName
	 * @return
	 */
	public static String columnToProp(String columnName) {
		if (StringUtils.contains(columnName, "_")) {
			columnName = StringUtils.lowerCase(columnName);
			String result = "";
			String s[] = columnName.split("_");
			for (int i = 0; i < s.length; i++) {
				if (i == 0) {
					result += StringHelp.firstLetterToLowerCase(s[i]);
				} else {
					result += StringHelp.firstLetterToUpperCase(s[i]);
				}
			}
			return result;
		}
		return StringUtils.lowerCase(columnName);
	}

	/**
	 * JavaBean的属性转成数据库表的字段<br/>
	 * 	字段的命名：<br/>
	 * 	1、USER_NAME 以下划线方式<br/>
	 * 	2、userName  以大写字母方式
	 * @param prop
	 * @return
	 */
	public static String propToColumn(String prop) {
		String[] words = StringHelp.resolveWord(prop);
		String column = "";
		for (int i = 0; i < words.length; i++) {
			column += StringUtils.upperCase(words[i]);
			if (i != (words.length - 1)) {
				column += "_";
			}
		}
		return column;
	}
	
	public static void main(String[] args) {
		String prop = "user_cn_name";
		String column = TableBeanUtils.propToColumn(prop);
		System.out.println(column);
		System.out.println(columnToProp(column));
	}
}
